Industrial control systems have enabled modern factories to become partially or completely automated in many circumstances. These systems generally include a plurality of Input and Output (I/O) modules that interface at a device level to switches, contactors, relays and solenoids along with analog control to provide more complex functions such as Proportional, Integral and Derivative (PID) control. Communications have also been integrated within the systems, whereby many industrial controllers can communicate via network technologies such as Ethernet, Control Net, Device Net or other network protocols and also communicate to higher level computing systems. Generally, industrial controllers utilize the aforementioned technologies along with other technology to control, cooperate and communicate across multiple and diverse applications.
Microsoft .NET is an operating environment used within industrial control systems which enable manufacturers to integrate disparate legacy systems with current Internet technologies, allowing applications, services, and devices to work together in a digital environment, inside and outside the company. Microsoft .NET allows integration of industrial control systems and processes across multiple enterprises. A Human Machine Interface (HMI) application may be utilized within the operating environment Microsoft .NET.
The Human Machine Interface (HMI) is an application used within industrial control systems which enables users to create and use custom screens for displaying information and controlling the industrial environment. The capabilities of HMIs include: controls and displays on a touch screen, graphics symbols or object libraries, real time trending, data logging, and alarming. The display functions within an HMI are designed to serve as operator assistance, aiding and guiding personnel to carry out daily operations plus providing assistance for rare emergencies requiring quick action. HMIs incorporate a friendly user-interface facilitating display and control functions within the industrial environment. For example, a HMI can display a pump graphic correlating to a pump within the industrial environment, which allows the operator to control the pump (e.g., rate, on/off, etc.). A downside of HMI is the cost issues arising with specific programming and the need for custom scripts.
The automation industry has evolved so much that many operating environments within the manufacturers are not compatible with new or existing applications. Reprogramming and/or editing applications to adapt to pre-existing operating environments can be costly and inefficient. In addition, application programming can be a simple and repetitive process when an application is running within operating environments associated with the same parameters. However, the application programming is a difficult and tedious process when the application is programmed for each specific operating environment associated with different parameters. There are many cost and efficiency issues involved with the programming of applications within different operating environments.
When an application is programmed for one operating environment, the application must be revised or updated in order to be used within a different operating environment. The programmer focuses on compatibility rather than functionality because of the need to revise or update an application for every operating environment it is intended to run. However, functionality should be the primary focus of a programmer.
After an application has been written and implemented within an operating environment, the application may not operate correctly with new components or a new operating environment introduced to the system. The application must be coded specifically or tailored to each new component and/or operating environment. Rather than the application being executed from the original code, the code must be revised or updated in order for new components and/or new operating environment introduced.
Operating environments and applications are frequently created and/or updated. Given the plethora of operating environments and component architectures available, agreeing on one solution across multiple enterprises is problem within the automation industry. With the rapid pace of technology, the compatibility between operating environments and applications extends beyond the threshold of programmable efficiency. In order for applications to run appropriately within a specified operating environment, programmers often tailor applications specifically for the associated operating environment parameters. However, these applications should focus upon the functionality of the code rather than the compatibility with the operating environment and the associated parameters. In view of the above, there is a strong need for computer implemented software that provides for specifically tailoring or updating applications to the various operating environments within the industrial setting.